﻿using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using XinYi.CrookedShowMode;

namespace XinYi.CrookedShow.BLL
{
    public class Product_SkuService : BaseService<Product_Sku>
    {
        ///// <summary>
        ///// 添加商品sku
        ///// </summary>
        ///// <param name="view"></param>
        ///// <param name="Imgs"></param>
        ///// <returns></returns>
        //public bool AddProductSku(Product_Sku productSku, string Imgs)
        //{
        //    using (CrookedShowEntities db = new CrookedShowEntities())
        //    {
        //        using (var tram = db.Database.BeginTransaction())
        //        {
        //            try
        //            {
        //                //获取规格(Key)和规格值(value)
        //                Dictionary<int, int> persons = JsonConvert.DeserializeObject<Dictionary<int, int>>(productSku.SpecSku);
        //                //添加商品spu和规格关联表
        //                foreach (var person in persons)
        //                {
        //                    if (db.ProducSpuSpec.Where(a => a.ProducSpuId == productSku.ProductId && a.SpecId == person.Key).Any())
        //                    {
        //                        //商品规格关联表有记录，不添加
        //                    }
        //                    else
        //                    {
        //                        //没有，添加记录
        //                        ProducSpuSpec producSpuSpec = new ProducSpuSpec() { SpecId = person.Key, ProducSpuId = productSku.ProductId, CreateTime = DateTime.Now, ModifiedTime = DateTime.Now };
        //                        db.ProducSpuSpec.Add(producSpuSpec);
        //                        db.SaveChanges();
        //                    }
        //                }
        //                //添加商品sku表
        //                ProductSku sku = db.ProductSku.Add(productSku);
        //                db.SaveChanges();
        //                //添加图片
        //                Dictionary<int, string> pics = JsonConvert.DeserializeObject<Dictionary<int, string>>(Imgs);
        //                foreach (var ps in pics)
        //                {
        //                    Pic pic = new Pic();
        //                    pic.ProductSkuId = sku.Id;
        //                    pic.PicUrl = ps.Value;
        //                    pic.PicOrder = Convert.ToInt16(ps.Key + 1);
        //                    pic.ModifiedTime = DateTime.Now;
        //                    pic.PicStatus = true;
        //                    pic.PicStatus = true;
        //                    db.Pic.Add(pic);
        //                    db.SaveChanges();
        //                }
        //                tram.Commit();
        //                return true;
        //            }
        //            catch (Exception e)
        //            {
        //                tram.Rollback();
        //                return false;
        //            }
        //        }
        //    }
        //}
        ///// <summary>
        ///// 商品展示
        ///// </summary>
        ///// <returns></returns>
        //public List<ProductSkuView> ProductSkuViews()
        //{
        //    using (CrookedShowEntities db = new CrookedShowEntities())
        //    {
        //        var result = from a in db.Product_Sku
        //                     join b in db.Product_Spu on a.ProductId equals b.Id
        //                     join c in db.Category on b.Three_Category_Id.ToString() equals c.Id.ToString()
        //                     select new ProductSkuView()
        //                     {
        //                         Id = a.Id,
        //                         ProductSpuId = b.Id,
        //                         ProductName = b.Name,
        //                         ClassName = c.Name,
        //                         Stock = a.Stock,
        //                         CreateTime = a.CreateTime
        //                     };
        //        return result.ToList();
        //    }
        //}
        ///// <summary>
        ///// 删除商品
        ///// </summary>
        ///// <param name="id"></param>
        ///// <returns></returns>
        //public bool DelProductSku(int id)
        //{
        //    using (CrookedShowEntities db = new CrookedShowEntities())
        //    {
        //        using (var tram = db.Database.BeginTransaction())
        //        {
        //            try
        //            {
        //                //删除图片表
        //                List<Pic> pics = db.Pic.Where(a => a.Pic_Id == id).ToList();
        //                db.Pic.RemoveRange(pics);
        //                db.SaveChanges();
        //                //删除商品sku表
        //                ProductSku productSku = new ProductSku() { Id = id };
        //                db.Entry<ProductSku>(productSku).State = EntityState.Deleted;
        //                db.SaveChanges();
        //                tram.Commit();
        //                return true;
        //            }
        //            catch (Exception e)
        //            {
        //                tram.Rollback();
        //                return false;
        //            }
        //        }
        //    }
        //}
     }
}
